package clasesJuego;


import java.util.List;
import java.util.Set;

import utiles.FactoriaDeColecciones;

public class Jugador {

	/** 
	 * @uml.property name="manoMonedas"
	 * @uml.associationEnd inverse="jugador:clasesJuego.ConjuntoMonedas"
	 * @uml.association name="tiene"
	 */
	private List<Moneda> manoMonedas;

	/** 
	 * Getter of the property <tt>ManoMonedas</tt>
	 * @return  Returns the manoMonedas.
	 * @uml.property  name="manoMonedas"
	 */
	public List<Moneda> getManoMonedas() {
		return manoMonedas;
	}

	/** 
	 * Setter of the property <tt>ManoMonedas</tt>
	 * @param ManoMonedas  The manoMonedas to set.
	 * @uml.property  name="manoMonedas"
	 */
	public void setManoMonedas(List<Moneda> manoMonedas) {
		this.manoMonedas = manoMonedas;
	}

	/** 
	 * @uml.property name="manoCamaras"
	 * @uml.associationEnd inverse="jugador:clasesJuego.ConjuntoDeCamaras"
	 * @uml.association name="tiene"
	 */
	private List<Camara> manoCamaras;

	/** 
	 * Getter of the property <tt>manoCamaras</tt>
	 * @return  Returns the manoCamaras.
	 * @uml.property  name="manoCamaras"
	 */
	public List<Camara> getManoCamaras() {
		return manoCamaras;
	}

	/** 
	 * Setter of the property <tt>manoCamaras</tt>
	 * @param manoCamaras  The manoCamaras to set.
	 * @uml.property  name="manoCamaras"
	 */
	public void setManoCamaras(List<Camara> manoCamaras) {
		this.manoCamaras = manoCamaras;
	}

	/**
	 * @uml.property  name="heroe"
	 * @uml.associationEnd  inverse="jugador:clasesJuego.Personaje"
	 */
	private Personaje heroe;

	/**
	 * Getter of the property <tt>heroe</tt>
	 * @return  Returns the heroe.
	 * @uml.property  name="heroe"
	 */
	public Personaje getHeroe() {
		return heroe;
	}

	/**
	 * Setter of the property <tt>heroe</tt>
	 * @param heroe  The heroe to set.
	 * @uml.property  name="heroe"
	 */
	public void setHeroe(Personaje heroe) {
		this.heroe = heroe;
	}

	/**
	 * @uml.property  name="nombreJu"
	 */
	private String nombreJu = "";

	/**
	 * Getter of the property <tt>nombreJu</tt>
	 * @return  Returns the nombreJu.
	 * @uml.property  name="nombreJu"
	 */
	public String getNombreJu() {
		return nombreJu;
	}

	/**
	 * Setter of the property <tt>nombreJu</tt>
	 * @param nombreJu  The nombreJu to set.
	 * @uml.property  name="nombreJu"
	 */
	public void setNombreJu(String nombreJu) {
		this.nombreJu = nombreJu;
	}

	/**
	 * @uml.property  name="numero"
	 */
	
		
		/**
		 */
		public boolean ganador(){
			return false;	
		}

			
			/**Me tiene que llegar como parametro de entrada el heroe que quiero ser.
			 * Me contruye por defecto un personaje de tipo Ladron.
			 */
			public Jugador(String nombre, Personaje figura){
				
				manoCamaras= FactoriaDeColecciones.creaList();
				manoMonedas= FactoriaDeColecciones.creaList();
				this.nombreJu=nombre;
				heroe= figura;
				
			}

					
					/**
					 * coloca el personaje en una camara, es decir lo coloca en la camara incio o cuando se mueve el personaje de una camara a otra
					 */
					
						
							
							/** 
							 * Comprueba si el jugador tiene el total de monedas que
							 *  hacen falta para genar la partida
							 */
			public void ganar(Integer monedasTotalesJugador){
				}
			
			
			public void robarCamara(Jugador jug){
				Camara c=InterfazDeUsuario.eligeCamara(jug.getManoCamaras());
				jug.getManoCamaras().remove(c);
				Jugador.this.getManoCamaras().add(c);
				
			}

}
